package com.day1.managersystem.controller;

import com.day1.managersystem.domain.Student;
import com.day1.managersystem.service.StudentService;

import java.util.Scanner;

/**
 * @author 小坡
 * @date 2022/8/20  12:12
 * 用于客服接待的   和用户打交道的
 **/
public class StudentController extends BaseStudentController {
    //    业务员对象
//    private StudentService studentService = new StudentService();  //改成私有的
    private Scanner sc = new Scanner(System.in);//键盘录入进行优化 提取出来到最上边

    /*
        //    用来开启学生管理系统
        public void start() {
            Scanner scanner = new Scanner(System.in);
            stopStudent:
            while (true) {
                //        搭建主页面的菜单
                System.out.println("--------欢迎来到学生管理系统--------");
                System.out.println("1添加学生");
                System.out.println("2删除学生");
                System.out.println("3修改学生");
                System.out.println("4查看学生");
                System.out.println("5 退出");
                System.out.println("请输入您的选择: ");
    //        字符串类型录入
                String choic = scanner.next();
                switch (choic) {
                    case "1":
                        System.out.println("添加学生");
                        addStudent();
                        break;
                    case "2":
                        System.out.println("删除学生");
                        delStudent();
                        break;
                    case "3":
                        System.out.println("修改学生");
                        updateStudent();
                        break;
                    case "4":
                        System.out.println("查看学生");
                        findAllStudent();
                        break;
                    case "5":
                        System.out.println("感谢使用学生管理系统 ");
                        break stopStudent;    //  这里正常的break只是退出到switch循环 因此使用标记 可以退出while循环
                    default:
                        System.out.println("您的输入有误，请重新输入！");
                        break;
                }
            }
        }

        public void updateStudent() {
            String updateid;
            while (true) {
                System.out.println("请输入要修改的学生id");
                updateid = sc.next();
    //            检测学生id是否存在
                boolean exists = studentService.isExists(updateid);
                if (!exists) {
                    System.out.println("你输入的这个id不存在，请检查后重新再试！");
                } else {
                    break;
                }
            }
            updateid = inputStudentId();
          *//*  System.out.println("请输入学生姓名：");
        String name = sc.next();
        System.out.println("请输入学生年龄：");
        String age = sc.next();
        System.out.println("请输入学生生日：");
        String birthday = sc.next();
        Student newstu = new Student();
        newstu.setId(updateid);
        newstu.setName(name);
        newstu.setAge(age);
        newstu.setBirthday(birthday);*//*
        ///优化重复的代码
        Student newstu = inputstudentInfo(updateid);
        studentService.updateStudent(updateid, newstu);
        System.out.println("修改成功");
    }

    public void delStudent() {
//        Scanner sc = new Scanner(System.in); 键盘录入进行优化  提取出来到最上边
     *//*   String delid;
        while (true) {
            System.out.println("请输入要删除的学生id");
            delid = sc.next();
//            检测学生id是否存在
            boolean exists = studentService.isExists(delid);
            if (!exists) {
//                不存在这个id
                System.out.println("你输入的这个id不存在，请检查后重新再试！");
            } else {
//                存在   需要进行删除
                break;
            }
        }*//*
        //优化重复的代码
        String delid = inputStudentId();
        studentService.delStudent(delid);
        System.out.println("删除成功");

    }

    public void findAllStudent() {
//        StudentService studentService=new StudentService();  提取出来 节省内存空间
        Student[] students = studentService.findAllStundet();
//        检测是否存在学生的信息
        if (students == null) {
            System.out.println("查无信息，请添加后重试");
            return;
        }
//        学生 信息一定存在   进行遍历
        System.out.println("学号\t姓名\t年龄\t生日");
        for (int i = 0; i < students.length; i++) {
            Student student = students[i];
//            System.out.println(students[0]);
//            System.out.println(students[1]);
//            System.out.println(students[2]);
//            System.out.println(students[3]);
//            System.out.println(students[4]);
            if (student != null) {
                System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t\t" + student.getBirthday());
            }
        }
    }

    //    这个不使用inputStudentId方法，因为id这里需要的是不存在的，而方法是不存在重新录入 会发生冲突！不适用
    public void addStudent() {
//        Scanner sc = new Scanner(System.in); 键盘录入进行优化  提取出来到最上边
        String id;
//        StudentService studentService = new StudentService(); 提取出来 节省内存空间
        while (true) {
            System.out.println("请输入学生id: ");
            id = sc.next();
            boolean flag = studentService.isExists(id);
            if (flag) {
                System.out.println("学号已经存在，情重新输入");
            } else {
                break;
            }
        }
       *//* System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        String age = sc.next();
        System.out.println("请输入学生生日:");
        String birthday = sc.next();
        Student stu = new Student();
        stu.setId(id);
        stu.setName(name);
        stu.setAge(age);
        stu.setBirthday(birthday);*//*//优化重复的代码
        Student stu = inputstudentInfo(id);

        boolean result = studentService.addStudent(stu);
        if (result) {
            System.out.println("添加成功");
        } else {
            System.out.println("添加失败");
        }
    }

    public String inputStudentId() {
        String id;
        while (true) {
            System.out.println("请输入学生id");
            id = sc.next();
//            检测学生id是否存在
            boolean exists = studentService.isExists(id);
            if (!exists) {
                System.out.println("你输入的这个id不存在，请检查后重新再试！");
            } else {
                break;
            }
        }
        return id;
    }

    //    键盘录入学生信息
//    开闭原则：对扩展内容开放，对修改内容关闭*/
    @Override
    public Student inputstudentInfo(String id) {
        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        String age = sc.next();
        System.out.println("请输入学生生日:");
        String birthday = sc.next();
        Student stu = new Student();
        stu.setId(id);
        stu.setName(name);
        stu.setAge(age);
        stu.setBirthday(birthday);
        return stu;
    }

}
